//
//  HMMainTabBar.swift
//  新浪微博
//
//  Created by 饶鹏伟 on 16/4/6.
//  Copyright © 2016年 饶鹏伟. All rights reserved.
//

import UIKit

class HMMainTabBar: UITabBar {

    //重写父类的方法
    override init(frame: CGRect) {
        
        super.init(frame: frame)
        
        addSubview(plusBtn)
        
    }

    //当该视图通过 xib/sb加载的时候 这时才会执行这个方法 在这个方法内部默认实现报错
    //一旦程序员实现了 init 当前这个类的对象可以通过手写代码创建 默认为不支持通过xib/sb加载
    required init?(coder aDecoder: NSCoder) {
        //默认实现报错
        fatalError("init(coder:) has not been implemented")
    }
    
    
    
    //获取subViews所有的tabbarbutton 重新设置frame 把中间空出来设置加号按钮
    override func layoutSubviews() {
        
        super.layoutSubviews()
        
        //每个按钮的宽和高
        let itemW=self.frame.width/5
        let itemH=self.bounds.height
        
        //每个按钮的位置
        let rect=CGRect(x: 0, y: 0, width: itemW, height: itemH)
        
        //设置索引
        var index: CGFloat=0
        
        // 遍历每个子控件 设置frame
        for subView in subviews{
            
            //判断取出来的子控件是否是UITabBarButton
            if subView .isKindOfClass(NSClassFromString("UITabBarButton")!){
            
            subView.frame=CGRectOffset(rect, index*itemW, 0)
                
                if (index==1){
                    index++
                }
                
                index++
        }
        
    }
        
        //设置加号按钮的frame
        plusBtn.frame=CGRectOffset(rect, itemW*2, 0)
        //移动到最顶层
        //bringSubviewToFront(plusBtn)
}
    
    
   //懒加载一个加号按钮
       lazy var plusBtn: UIButton={
        
        //实例化一个按钮
        let btn=UIButton()
        
        //设置背景图片
        btn.setBackgroundImage(UIImage(named: "tabbar_compose_button"), forState: .Normal)
        btn.setBackgroundImage(UIImage(named: "tabbar_compose_button_highlighted"), forState: .Highlighted)
        
        //设置图片
        btn.setImage(UIImage(named: "tabbar_compose_icon_add"), forState: .Normal)
        btn.setImage(UIImage(named: "tabbar_compose_icon_add_highlighted"), forState: .Highlighted)
        
       return btn
        
    }()
    
    

}
